perm filename LICKLI.XGP[LET,JMC] blob sn#170703 filedate 1975-07-31 generic text, type T, neo UTF8
/LMAR=0/XLINE=3/FONT#0=BASL30/FONT#1=BASI30/FONT#2=BASB30/FONT#3=STA200/FONT#4=NGB25
␈↓ ↓H␈↓␈↓βS␈↓∧ Artificial Intelligence Laboratory, STANFORD UNIVERSITY, Stanford, California 94305
␈↓ ↓H␈↓∧Telephone 415 497-4971␈↓ 
≥July 31, 1975




␈↓ ↓H␈↓Dr. J.C.R. Licklider
␈↓ ↓H␈↓Director, Information Processing Techniques
␈↓ ↓H␈↓ Advanced Research Projects Agency
␈↓ ↓H␈↓1400 Wilson Blvd.
␈↓ ↓H␈↓Arlington, VA 20009

␈↓ ↓H␈↓Dear Lick:

␈↓ ↓H␈↓        I␈α
have␈αjust␈α
come␈α
upon␈αyour␈α
memo␈α
entitled␈α"Standard␈α
DoD␈α
High␈αOrder␈α
Language",␈α
and␈αI
␈↓ ↓H␈↓have the following comments:

␈↓ ↓H␈↓        1.␈α
While␈αI␈α
have␈αnot␈α
spent␈αmuch␈α
time␈α
reading␈αthe␈α
document,␈αI␈α
am␈αin␈α
general␈αagreement␈α
with
␈↓ ↓H␈↓its␈α∪speci≡cations.␈α∪ I␈α∪also␈α∪agree␈α∪that␈α∪a␈α∪general␈α∪purpose␈α∪high␈α∪order␈α∪language␈α∪is␈α∪a␈α∪reasonable
␈↓ ↓H␈↓objective.

␈↓ ↓H␈↓        2.␈α∞The␈α
speci≡cations␈α∞will␈α∞be␈α
di≠cult␈α∞to␈α∞meet,␈α
and␈α∞it␈α
will␈α∞be␈α∞di≠cult␈α
to␈α∞establish␈α∞that␈α
they
␈↓ ↓H␈↓have␈αbeen␈αmet.␈α Moreover,␈αthe␈αspeci≡cations␈αas␈αwritten␈αwill␈αnot␈αinsure␈αthat␈αthe␈αlanguage␈αwill␈αmeet
␈↓ ↓H␈↓the␈αintent␈αof␈αthe␈α
speci≡cations.␈α ␈↓αDoD␈αshouldn't␈αgive␈α
up␈αon␈αthis␈αaccount␈α
but␈αshould␈αprepare␈αfor␈α
a
␈↓ ↓H␈↓αlong␈α∞and␈α∞expensive␈α∞development␈α
with␈α∞reasonable␈α∞assurance␈α∞that␈α
the␈α∞result␈α∞will␈α∞be␈α∞worth␈α
the
␈↓ ↓H␈↓αcost.␈↓

␈↓ ↓H␈↓        3.␈α∀DoD␈α∀should␈α∀learn␈α∀from␈α∃the␈α∀previous␈α∀attempts␈α∀to␈α∀specify␈α∀languages,␈α∃e.g.␈α∀COBOL,
␈↓ ↓H␈↓ALGOL, and PL/I.  What it should learn may be a matter of controversy, but here are my ideas:

␈↓ ↓H␈↓                a.␈αIt␈αis␈αinsu≠cient␈αto␈αform␈αa␈αcommittee␈αand␈αlet␈αthe␈αcommittee␈αmeet␈αseveral␈α
times␈αand
␈↓ ↓H␈↓specify␈α∞the␈α∞language.␈α∞ It␈α∞is␈α∞especially␈α∞bad␈α∞if␈α∞the␈α∞committee␈α∞meetings␈α∞take␈α∞the␈α∞form␈α∂of␈α∞logrolling
␈↓ ↓H␈↓wherein␈α
various␈α
members␈α
campaign␈α
to␈α
get␈α
features␈α
they␈α
like␈α
into␈α
the␈α
language.␈α
 This␈α
may␈α
work
␈↓ ↓H␈↓out␈αespecially␈αbadly␈αif␈αthe␈αcommittee␈αmembers␈αcan␈αclaim␈αto␈αrepresent␈αservice␈αinterests␈αthat␈αhave␈α
to
␈↓ ↓H␈↓be␈αtaken␈α
into␈αaccount.␈α
 What␈αif␈α
the␈αNavy␈α
"representative"␈αclaims␈α
that␈αshipboard␈αprograms␈α
require
␈↓ ↓H␈↓"dynamic␈α⊃own␈α⊃arrays"␈α⊃or␈α⊃some␈α⊃such␈α⊃nonsense,␈α⊃i.e.␈α⊃he␈α⊃will␈α⊃be␈α⊃using␈α⊃his␈α⊃service␈α⊃connection␈α⊃to
␈↓ ↓H␈↓support his own ego.

␈↓ ↓H␈↓                b.␈α∞There␈α∞should␈α∂be␈α∞an␈α∞open␈α∞competition␈α∂to␈α∞prepare␈α∞complete␈α∂speci≡cations␈α∞perhaps
␈↓ ↓H␈↓supported␈αby␈α
implementations.␈α Then␈α
a␈αcommittee␈α
should␈αchoose␈α
one␈αof␈α
the␈αrivals,␈α
perhaps␈αwith
␈↓ ↓H␈↓the␈αincorporation␈α
of␈αfeatures␈α
from␈αrivals.␈α
 This␈αincreases␈αthe␈α
probability␈αof␈α
arriving␈αat␈α
a␈αuni≡ed
␈↓ ↓H␈↓conception rather than a camel (horse designed by a committee).

␈↓ ↓H␈↓                c.␈α∂The␈α⊂language␈α∂should␈α∂not␈α⊂be␈α∂released␈α⊂for␈α∂use␈α∂until␈α⊂an␈α∂implementation␈α⊂has␈α∂been
␈↓ ↓H␈↓certi≡ed to meet the speci≡cations.
␈↓ ↓H␈↓αDr. J.C.R. Licklider␈↓ ¬vJuly 31, 1975␈↓ 
nPage 2␈↓ 


␈↓ ↓H␈↓        4.␈α∞The␈α
speci≡cation␈α∞that␈α
the␈α∞object␈α
code␈α∞should␈α∞be␈α
e≠cient␈α∞is␈α
too␈α∞vague.␈α
 Here␈α∞are␈α∞a␈α
few
␈↓ ↓H␈↓more precise speci≡cations.

␈↓ ↓H␈↓                a.␈α∞The␈α∞run-time␈α∞≡xed␈α∞code␈α∞should␈α∞not␈α∞be␈α∞too␈α∞large.␈α∞ In␈α∞particular,␈α∞the␈α∞user␈α∞de≡ned
␈↓ ↓H␈↓data␈αstructures␈αproposed␈αsuggest␈αa␈α
complex␈αstorage␈αcontrol␈αand␈αgarbage␈αcollection␈α
mechanism.␈α It
␈↓ ↓H␈↓should be speci≡ed that this machinery not be present in runtime code unless its features are used.

␈↓ ↓H␈↓                b.␈α∂A␈α∞trivial␈α∂program␈α∂should␈α∞run␈α∂in␈α∂trivial␈α∞time␈α∂and␈α∂should␈α∞also␈α∂compile␈α∂in␈α∞trivial
␈↓ ↓H␈↓time.␈α
 Many␈α
IBM␈α∞systems␈α
that␈α
give␈α∞good␈α
results␈α
on␈α∞large␈α
programs␈α
fail␈α∞this␈α
one␈α
with␈α∞the␈α
result
␈↓ ↓H␈↓that it is very expensive to debug subroutines.

␈↓ ↓H␈↓                c.␈α⊂A␈α∂large␈α⊂number␈α∂of␈α⊂special␈α∂cases␈α⊂should␈α∂be␈α⊂compiled␈α∂e≠ciently.␈α⊂ For␈α⊂example,␈α∂a
␈↓ ↓H␈↓program␈α∂doing␈α∂numerical␈α⊂calculations␈α∂on␈α∂unsubscripted␈α∂real␈α⊂variables␈α∂should␈α∂produce␈α⊂code␈α∂no
␈↓ ↓H␈↓worse␈α∞than␈α∞Fortran.␈α
 The␈α∞problem␈α∞is␈α∞that␈α
a␈α∞compiler␈α∞for␈α∞a␈α
very␈α∞general␈α∞language␈α∞may␈α
produce
␈↓ ↓H␈↓very␈αbad␈αcode␈αfor␈αsimple␈αcases.␈α In␈αthe␈αcase␈αof␈αALGOL␈α60,␈αthis␈αwas␈αforced␈αby␈αthe␈αlanguage,␈αand
␈↓ ↓H␈↓some␈α∞of␈α∞the␈α∂ways␈α∞in␈α∞which␈α∞ALGOL␈α∂60␈α∞loses␈α∞have␈α∞been␈α∂excluded␈α∞in␈α∞these␈α∞speci≡cations,␈α∂but␈α∞a
␈↓ ↓H␈↓collection␈α
of␈α
favored␈αspecial␈α
cases␈α
needs␈α
to␈αbe␈α
implemented.␈α
 Another␈α
example␈αconcerns␈α
subroutine
␈↓ ↓H␈↓calls.␈α In␈αthe␈αgeneral␈αrecursive␈αcase,␈αa␈αstack␈α
is␈αrequired,␈αbut␈αin␈αsimple␈αFORTRAN␈αlike␈αcases,␈α
more
␈↓ ↓H␈↓e≠cient subroutine calling is possible.

␈↓ ↓H␈↓        Since␈α⊂the␈α⊂language␈α⊂admits␈α⊃recursively␈α⊂de≡ned␈α⊂data␈α⊂structures,␈α⊃it␈α⊂will␈α⊂include␈α⊂LISP␈α⊃as␈α⊂a
␈↓ ↓H␈↓special␈α
case,␈α
but␈α
it␈α
is␈α
not␈α
likely␈α
that␈α
the␈α
resulting␈α
LISP␈α
code␈α
would␈α
be␈α
e≠cient␈α
in␈α
either␈α
time␈αor
␈↓ ↓H␈↓space unless this were an objective.

␈↓ ↓H␈↓        5.␈α∞The␈α∞features␈α∞of␈α∂the␈α∞language␈α∞allowing␈α∞a␈α∞program␈α∂to␈α∞interact␈α∞with␈α∞a␈α∞terminal␈α∂and␈α∞and
␈↓ ↓H␈↓with␈α∃≡les␈α⊗should␈α∃be␈α⊗speci≡ed␈α∃in␈α⊗the␈α∃language,␈α⊗and␈α∃should␈α⊗not␈α∃be␈α⊗installation␈α∃dependent.
␈↓ ↓H␈↓Otherwise,␈α∩programs␈α⊃will␈α∩not␈α∩be␈α⊃truly␈α∩portable.␈α∩ The␈α⊃opportunity␈α∩can␈α∩be␈α⊃taken␈α∩to␈α∩specify␈α⊃a
␈↓ ↓H␈↓national ≡le naming scheme so that programs can refer to ≡les in other computers.

␈↓ ↓H␈↓        6.␈αI␈αwould␈αlike␈αto␈α
see␈αdynamic␈αprecision␈αfor␈αnumbers,␈αbecause␈α
I␈αthink␈αthis␈αwill␈αbe␈α
easier␈αto
␈↓ ↓H␈↓use and specify than the maze of single and double precision numbers now used.

␈↓ ↓H␈↓        7.␈αThe␈αde≡nition␈αof␈αvariable,␈αand␈α
the␈αphrase␈α"mathematically␈αcomplete␈αin␈αthe␈αTuring␈α
sense"
␈↓ ↓H␈↓lead␈α
me␈α∞to␈α
worry␈α
that␈α∞the␈α
writer␈α∞of␈α
these␈α
speci≡cations,␈α∞while␈α
clearly␈α
a␈α∞sensible␈α
person,␈α∞may␈α
not
␈↓ ↓H␈↓have␈α∂the␈α∞mathematics␈α∂he␈α∞is␈α∂referring␈α∞to␈α∂under␈α∞complete␈α∂control,␈α∞and␈α∂this␈α∞will␈α∂later␈α∞lead␈α∂to␈α∞the
␈↓ ↓H␈↓discovery that there has not been a complete meeting of minds.

␈↓ ↓H␈↓        8.␈αThe␈α
speci≡cations␈αmake␈α
no␈αbow␈α
towards␈αthe␈αability␈α
to␈αprove␈α
programs␈αcorrect.␈α
 For␈αthis
␈↓ ↓H␈↓purpose,␈α∞it␈α
is␈α∞important␈α∞that␈α
the␈α∞language␈α
have␈α∞as␈α∞simple␈α
a␈α∞formal␈α
description␈α∞as␈α∞is␈α
compatible
␈↓ ↓H␈↓with␈α
the␈αgeneral␈α
features␈αto␈α
be␈α
provided.␈α The␈α
IBM␈αPL/I␈α
formal␈α
description␈αshows␈α
that␈αwhat␈α
may
␈↓ ↓H␈↓seem␈α
to␈α
be␈α
a␈α
minor␈α
decision␈α
to␈α
the␈αcommittee␈α
or␈α
report␈α
editor␈α
may␈α
produce␈α
major␈α
anomalies␈αin␈α
the
␈↓ ↓H␈↓semantics␈α
of␈α
the␈α
language.␈α
 These␈α
anomalies␈α
show␈α
up␈α
in␈α
the␈α
implementation␈α
and␈α
also␈αwhen␈α
formal
␈↓ ↓H␈↓de≡nition is attempted.
␈↓ ↓H␈↓αDr. J.C.R. Licklider␈↓ ¬vJuly 31, 1975␈↓ 
nPage 3␈↓ 


␈↓ ↓H␈↓        Therefore,␈α∂I␈α∞would␈α∂argue␈α∞that␈α∂the␈α∂axiomatic␈α∞de≡nition␈α∂referred␈α∞to␈α∂in␈α∞the␈α∂document␈α∂be␈α∞a
␈↓ ↓H␈↓formal interpreter semantics.

␈↓ ↓H␈↓        I hope these remarks are of some use, and would be glad to help further.


␈↓ ↓H␈↓Sincerely,



␈↓ ↓H␈↓John McCarthy
␈↓ ↓H␈↓Director
␈↓ ↓H␈↓Professor of Computer Science